<?php

namespace App\Admin\Eloquent;

class Information extends Model
{
  /**
 * 信息模板 代码类别
 *
 * @var string
 */
  const IN_TYPE_CODE = 'information_type';

  /**
   * 信息模板 代码类别
   *
   * @var string
   */
  const IN_POSITION_CODE = 'adress_type';


  /**
   * 模型使用数据库表
   *
   * @var string
   */
  protected $table = 'information_template';

  /**
   * 实例化模型可批量赋值
   *
   * @var array
   */
  protected $fillable = ['type', 'title', 'content', 'position', 'state'];

  /**
   * 获取模板类型
   *
   * @return \App\Codes[]
   */
  public static function getTypes()
  {
    return Code::getByTypeId(self::IN_TYPE_CODE);
  }

  /**
   * 获取模板类型
   *
   * @return \App\Codes
   */
  public function type()
  {
    return Code::findByCodeAndTypeId($this->type, self::IN_TYPE_CODE);
  }



  /**
   * 获取模板位置
   *
   * @return \App\Codes[]
   */
  public static function getPositions()
  {
    return Code::getByTypeId(self::IN_POSITION_CODE);
  }

  /**
   * 获取模板位置
   *
   * @return \App\Codes
   */
  public function position()
  {
    return Code::findByCodeAndTypeId($this->position, self::IN_POSITION_CODE);
  }

  /**
   * 分页查询
   * @param array $options
   * @param $perPage
   */
  public static function paginateByQuery($options = [], $perPage)
  {
    $query = Information::query();

    //判断参数 追加查询条件
    if(!empty($options['in_type']))
      $query = $query->where('type', $options['in_type']);

    if(!empty($options['in_position']))
      $query = $query->where('position', $options['in_position']);

    if(!empty($options['in_title']))
      $query = $query->where('title', $options['in_title']);

    if($options['in_state']!=null )
      $query = $query->where('state', $options['in_state']);

    $informations = $query->orderBy('created_at','desc')->paginate($perPage);

    return $informations;

  }

}